#include "head.h"
#include "network.h"
#include "tool.h"
#include "log.h"
#include "login.h"
#include "database.h"

int main(int argc, char const *argv[])
{
    //打开数据库
    db = creat_database("database.db");

    //获取服务器启动的时间戳 用于比较套接字是否可用 
    time(&TIME_SERVER);

//登录的用户 fd更新时间 大于 服务器启动时间 并且  退出时间 大于服务器启动时间


    //用户账号表
    //创建表格  用户的表格属性 账户 密码 电话 权限标志 余额 当前使用的套接字 更新时间（时间戳）窗口状态 退出时间 peeople
    char sql[] = "CREATE TABLE IF NOT EXISTS people(name varchar(128), pwd varchar(128) \
    , tel varchar(128) , flag varchar(5) , value varchar(16)  , user_fd varchar(16) , \
    updata_time INTEGER ,chat_state varchar(16) , return_time INTEGER);";
    exec_sql(db,sql); 
    //商家账号表
    //创建表格 商家 的表格属性 账号 密码 电话 权限标志 余额 当前使用的套接字 商家店铺名 更新套接字时间（时间戳）退出状态 退出时间  merchant
    char sqll[] = "CREATE TABLE IF NOT EXISTS merchant(name varchar(128), pwd varchar(128) \
    , tel varchar(128) , flag varchar(5) , value varchar(16) , merchant_fd varchar(16) \
    , merchant_shop_name varchar(16) ,updata_time INTEGER ,return_state varchar(16) , return_time INTEGER );";
    exec_sql(db,sqll);
    //商家货物表
    //创建表格 总货物 的表格属性 商家名 货物名 价格 数量  product
    char sqlll[] = "CREATE TABLE IF NOT EXISTS product(\
    id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT\
    ,merchant_comment varchar(128)\
    ,merchant_name varchar(128),\
     product_name varchar(128) \
    , product_val varchar(128) ,\
     product_num varchar(5)  );";
    exec_sql(db,sqlll);
    //用户订单表  user_order
    //  用户名  商品id号 商家名 商品号 商品价格 商品数量 购买状态(加入购物车 购买  取消订单 )   user_order
    char sqllll[] = "CREATE TABLE IF NOT EXISTS user_order\
    (user_name varchar(128)\
    ,merchant_name varchar(128)\
    , product_name varchar(128)\
    , product_id varchar(128) \
    , product_val varchar(128)\
    , product_num varchar(5) ,\
     buy_state varchar(10)  ,\
      buy_cancel_state varchar(10) );";
    exec_sql(db,sqllll);
    //创建表格 聊天库 消息保存  char_database
    //用户名 1 fd1  用户名2 FD2 消息内容 读取状态 私聊  群聊 商家店铺名 商品id  用户或者商家的标识 char
    char sqqllll[] = "CREATE TABLE IF NOT EXISTS char(\
    user_one_name varchar(64), \
    user_one_fd varchar(64) \
    ,user_two_name varchar(64), \
    user_two_fd varchar(64) ,\
    char_data varchar(512) ,\
    read_state varchar(16) \
    , private_char varrchar(16) , \
    group_char_system varchar(16),\
    merchant_shop_name varchar(64),\
    shop_id varchar(16) \
    ,user_or_merchant varchar(64) );";
    //新群
    //在哪个群 就只收哪个群的消息 否则只是提醒
    //没在线的 消息是否已读
    exec_sql(db,sqqllll);
    
    //现在删除表格  清空一下数据库 
    // char drop_ssql[] = "DROP TABLE IF EXISTS people;";
    // exec_sql(db, drop_ssql);
    // char drop_sssql[] = "DROP TABLE IF EXISTS merchant;";
    // exec_sql(db, drop_sssql);
    // char drop_sql[] = "DROP TABLE IF EXISTS char;";
    // exec_sql(db, drop_sql);

    //每次启动服务器之前先将 用户名和 商家 绑定的 套接字 给清空
    clear_all_fds(db);

    //启动服务器
    socket_fd();

    


    printf("hello world\n");
    //关闭数据库
    close_sql(db);
    return 0;
    
}